import * as XLSX from 'xlsx';
import { saveAs } from 'file-saver';
 
/**
 * 导出 Excel 文件
 * @param {Array} data - 要导出的数据
 * @param {String} fileName - 文件名（不需要后缀）
 * @param {Array} headers - 表头，格式为 [{ key: 'name', label: '姓名' }, ...]
 */
export function exportExcel(data, fileName, headers) {
  // 将数据转换为工作表格式
  const worksheetData = data.map((item) => {
    const row = {};
    headers.forEach((header) => {
      row[header.label] = item[header.key];
    });
    return row;
  });
 
  // 创建工作表
  const worksheet = XLSX.utils.json_to_sheet(worksheetData);
 
  // 创建工作簿
  const workbook = XLSX.utils.book_new();
  XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
 
  // 生成 Excel 文件
  const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
 
  // 保存文件
  const blob = new Blob([excelBuffer], { type: 'application/octet-stream' });
  saveAs(blob, `${fileName}.xlsx`);
}